<?php
$types = isset($_POST['types']) ? $_POST['types'] : NULL; // массив
$type = isset($_POST['type']) ? absolutelyEscapeString($_POST['type']) : NULL;
$lable = isset($_POST['lable']) ? absolutelyEscapeString($_POST['lable']) : NULL;
$tarea = isset($_POST['tarea']) ? BBCode2Html(absolutelyEscapeStringFromWysiwyg($_POST['tarea'])) : NULL;
$city = isset($_POST['city']) ? absolutelyEscapeString($_POST['city']) : NULL;
$pub = isset($_POST['pub']) ? absolutelyEscapeString($_POST['pub']) : NULL;

$firm=0;

$user = isset($_POST['login']) ? absolutelyEscapeString($_POST['login']) : NULL;
$email = isset($_POST['email']) ? absolutelyEscapeString($_POST['email']) : NULL;
$captcha = isset($_POST["regKcapthca"]) ? absolutelyEscapeString($_POST["regKcapthca"]) : NULL;

$pswrd = generate_password(7);

//$tarea = preg_replace("/<a href=\"goto.php?url=(.*?)\" title=\"(.*?)\" target=\"_blank\">(.*?)<\/a>/i","[url=http://$1]$2[/url]",$tarea);
//$tarea = preg_replace("/<a href=\"mailto:(.*?)\" title=\"(.*?)\">(.*?)<\/a>/i","[mail=$1]$2[/mail]",$tarea);

try {
	// если не зарегистрирован, то регистрируем по краткой форме
	if (!$objUser->isLoggedIn()){
		$objUser->shortReg = true; // ставим флаг сокращенной регистрации
		$objUser->email = $email;
		$objUser->login = $user;
		$objUser->pass1 = $pswrd;
		$objUser->pass2 = $pswrd;
		$objUser->regKcapthca = $captcha;
		// регистрируем		
		$objUser->regUserWithValidation();
		
/*$s_email = 'sr@emarka.ru';
	$tema = $default_site.' Registration';
	$mail_text =    "Логин пользователя: ".$auth['name']."\n".
			"Пароль: ".$pswrd2."\n".
			"E-mail: ".$auth['email']."\n";
	mail($s_email,$tema,$mail_text,"From: ".$auth['email']);
	$mail_text = "Добрый день,"."\n".
			"Вы зарегистрировались на сайте ".$default_site.". Сохраните это письмо. Ваши данные:"."\n";
	$mail_text.=    "Логин пользователя: ".$auth['name']."\n".
			"Пароль: ".$pswrd2."\n".
			"E-mail: ".$auth['email']."\n";
	$mail_text.=    "Теперь Вы стали полноправным пользователем проекта и можете войти панель управления аккаунтом по адресу:"."\n".
			"http://www.neftemagnat.ru/member/"."\n\n";
	$mail_text.=    "С уважением, служба поддержки ".$default_site."\n";
	mail($auth['email'],$tema,$mail_text,"From: ".$s_email);	*/	
		
		
	}
	
	// добавление/редактирование объявления
	
	// сначала проверка
	$e = new Exception_Multiline();
	
	if (trim($pub)=="" OR $pub>45) {
		$e[] = '<li>Не более 45 дней'."\n";
		$action = '';
	}
	if (trim($types)=="") {
		$e[] = 'Не указаны разделы'."\n";
		$action = '';
	}
	if (trim($type)=="") {
		$e[] = 'Не указан тип'."\n";
		$action = '';
	}
	if (count($types) > 5) {
		$e[] = 'Не более 5 разделов'."\n";
		$action = '';
	}
	if (trim($lable)=="") {
		$e[] = 'Не указан заголовок'."\n";
		$action = '';
	}
	if (trim($tarea)=="") {
		$e[] = 'Не указан текст объявления'."\n";
		$action = '';
	}
	if (trim($city)=="") {
		$e[] = 'Не указан город'."\n";
		$action = '';
	}
	
    if ($e->isErrorExists()) // Если мы зафиксировали какие-то исключения, то выдаем окончательное исключение
    	throw $e;
	else{
	
		$dater = date("r");
		$my_id_user = $objUser->getIdUser();
	
		$objDB = Service_Database::instance();
		
		$query_user = "insert into ".DB_PREFIX."bbs values(
			0,
			'$my_id_user',
			'$firm',
			'$city',
			CURDATE(),
			CURDATE() + INTERVAL $pub DAY,
			'$dater',
			'$type',
			'$lable',
			'$tarea',
			1,
			0
			)";
		
		$idBbs = $objDB->queryInsertAutoincrement($query_user);
		
		if ($types) {
			foreach ($types as $myval) {
				$myval = trim($myval);
				if (intval($myval)) {
					$objDB->insertAutoincrement(DB_PREFIX."bbs_types", array("idtype" => $myval, "idbbs" => $idBbs));
				}
			}
		}
		
	    $objSession->saveSuccessMessage('Объявление успешно сохранено'); // изменено
	    header('HTTP/1.1 301 Moved Permanently');
	    header('Location:' . W_ABSPATH . 'bbs' . $idBbs);
	    exit();	

	}
	
	
                                
	
	// add avatar big image
/*	if (isset($_FILES['photo']['name']) && $_FILES['photo']['name'] != ""){
		
		$image = new Image('file', $_FILES['photo'], array(
		'maxWidth' => 500, 
		'newExtension' => 'jpg', 
		'folder' => ABSPATH."images/avatars/", 
		'imageName' =>$objUser->getIdUser(), 
		'deleteOnChange' => false), null);
		$image->addArrSize(0, 0, 'o_'); 
		//$image->addArrSize(50, 50, 's_');
		//$image->addArrSize(650, 650, 'm_');
		
		$image->save();
	
	}*/	
	
	
//	$objSession->moveTo(W_ABSPATH."profile", "Вы успешно зарегистрировались", 1);
}
catch(Exception_Multiline $exM){
	$error = NULL;
	foreach ($exM as $eM){ //Проходим по всем исключениям
		$error .= $eM . '<br />';
	}  // Выводим отдельно взятое исключение
	
	//$error .= "Не забудьте повторно ввести пароль и текст с картинки";
	User_User::setUserMessage($error, -1);
}



/*try{
        $e = new Exception_Multiline();
                if (Service_String::strlenUnicode($arrArticlePost['articleTitle']) < 1)
                        $e[] = 'Не заполнен заголовок статьи';
                if ((empty($arrArticlePost['idFolder']) OR $arrArticlePost['idFolder'] == 'NULL') AND !$arrArticlePost['blog'])
                        $e[] = 'Выберите раздел дерева либо укажите, что статья относится к личному блогу';
        if (!$arrArticlePost['draft']){
                if (Service_String::strlenUnicode($arrArticlePost['annotation']) < 5)
                        $e[] = 'Не заполненно поле с аннотацией';
                if (strlen($arrArticlePost['cut_text']) < 2)
                        $e[] = 'Не заполнено поле с кат словом';
                if (strlen($arrArticlePost['articleText']) > 100000000)
                        $e[] = 'Текст статьи слишком длинный';
                if (Tags::getCountOfTags($arrArticlePost['tags']) < 2)
                        $e[] = 'Не заполнены теги';
          if ($arrArticlePost['isToLinkWithCRequest'] ) {
            if (!$arrArticlePost['ID_content_request'] )
              $e[] = 'Вы не указали заявку, с которой необходимо связать решение';      
            elseif (!ContentRequest::checkIfOnUser($arrArticlePost['ID_content_request'] ))
              $e[] = 'Вы не подписывались на выполнение указанной заявки';
          }
        }
        if ($e->isErrorExists()) // Если мы зафиксировали какие-то исключения, то выдаем окончательное исключение
     throw $e;
        else{
                if ($arrArticlePost['blog']){//проверка на личный блог
                                $arrArticlePost['essence'] = 3;
                                $arrArticlePost['idFolder'] = $idUser;
                        }
                else
                        $arrArticlePost['essence'] = 11;
                        

                if (isset($idArticle)){//редактирование
                        $arrArticle = Article::getInfoForEdit($idArticle);
                        $arrArticlePost['idEssence'] = $arrArticle['ID_essence'];

                        if ($arrArticle['draft'] == 0 AND $arrArticlePost['draft'] == 0){
                                if ($arrArticle['essence_type'] != $arrArticlePost['essence']){
                                        if ($arrArticle['essence_type'] == 11 and $arrArticlePost['essence'] == 3)
                                                TreeStructure::decrementStructureEssenceCnt($arrArticle['ID_essence'], 1);
                                        elseif ($arrArticlePost['essence'] == 11)
                                                TreeStructure::incrementStructureEssenceCnt($arrArticlePost['idFolder'], 1);
                                }
                                elseif ($arrArticle['ID_essence'] != $arrArticlePost['idFolder']){
                                                TreeStructure::decrementStructureEssenceCnt($arrArticle['ID_essence'], 1);
                                                TreeStructure::incrementStructureEssenceCnt($arrArticlePost['idFolder'], 1);
                                }
                        }
                        elseif ($arrArticle['draft'] == 1 AND $arrArticlePost['draft'] == 0 AND $arrArticlePost['essence'] == 11)
                                TreeStructure::incrementStructureEssenceCnt($arrArticlePost['idFolder'], 1);
                        elseif ($arrArticle['draft'] == 0 AND $arrArticlePost['draft'] == 1 AND $arrArticlePost['essence'] == 11)
                                TreeStructure::decrementStructureEssenceCnt($arrArticle['ID_essence'], 1);

                        Article::updateArticle($arrArticlePost, $idArticle);
                        $objSession->saveSuccessMessage('Спасибо, ваша статья отредактирована');
                        
                        if (!$arrArticlePost['draft']){
                        //Добавляем теги
                        $arrTags = Tags::processTagsBeforeAdd($arrArticlePost['tags'], 1, ($arrArticlePost['essence'] != 3 ? $arrArticlePost['idFolder'] : NULL));
              $strTagsToAdd = join(',', $arrTags);
              Tags::addTagsInfo($idArticle, 1, Tags::editTags($idArticle, $strTagsToAdd, 1));
                        }
                        else{                           
                                Tags::editTags($idArticle, '', 1);//echo 'удалил теги из таблиц';                               
                                if ($arrArticlePost['tags'])//добавили новые теги в черновик сущности
                      Tags::addTagsInfo($idArticle, 1, Tags::editTags($idArticle, $arrArticlePost['tags'], 1));
                        }
                        
                        if ($arrArticle['draft'] == 1 AND $arrArticlePost['draft'] == 0){
                                User_User::incrementEssenceInUserTable('article', $idUser);
                                Article::updateCreation($idArticle);
                        }
                        elseif ($arrArticle['draft'] == 0 AND $arrArticlePost['draft'] == 1)
                                User_User::decrementEssenceInUserTable('article', $idUser);
                                
      
                        header('HTTP/1.1 301 Moved Permanently');
                        if (!$arrArticlePost['draft'])
                                header('Location:' . W_ABSPATH . 'article/' . $idArticle);
                        else 
                                header('Location:' . W_ABSPATH . 'editArticle/' . $idArticle);          
                        exit();
                }
                else {//создание новой
                        $idArticle = Article::addArticleWithIncrement($arrArticlePost, $idUser);
                        if (!$arrArticlePost['draft']){
                                $objSession->saveSuccessMessage('Спасибо, ваша статья добавлена');
                                
                        //Добавляем теги
                        if ($arrArticlePost['essence'] == 3)
                      $arrTags = Tags::processTagsBeforeAdd($arrArticlePost['tags'], 1);
                    else 
                      $arrTags = Tags::processTagsBeforeAdd($arrArticlePost['tags'], 1, $arrArticlePost['idFolder']);
              $strTagsToAdd = join(',', $arrTags);
              Tags::addTagsInfo($idArticle, 1, Tags::editTags($idArticle, $strTagsToAdd, 1));
              
              //связываем с заявкой, если необходимо
              if ($arrArticlePost['isToLinkWithCRequest'])
                      ContentRequest::linkWithEssence($arrArticlePost['ID_content_request'], $idArticle);
              
                                User_User::incrementEssenceInUserTable('article', $idUser);
                                if ($arrArticlePost['essence'] == 11){
                                        Rating::addRating($idArticle, 1, $idUser, 1, $arrArticlePost['idFolder']);
                                        TreeStructure::incrementStructureEssenceCnt($arrArticlePost['idFolder'], 1);
                                }
                                else
                                        Rating::addRating($idArticle, 1, $idUser, 1);
                                header('HTTP/1.1 301 Moved Permanently');
                                if (!$arrArticlePost['draft'])
                                        header('Location:' . W_ABSPATH . 'article/' . $idArticle);
                                else 
                                        header('Location:' . W_ABSPATH . 'editArticle/' . $idArticle);                                  
                                exit();
                        }
                        else {
                          $arrTags = Tags::processTagsBeforeAdd($arrArticlePost['tags'], 1);
                    $arrTags = Tags::convertLinearTagsStringToArray($arrTags);
              Tags::addTagsInfo($idArticle, 1, $arrTags);
                    
                                $objSession->saveSuccessMessage('Статья успешно сохранена в черновики');
                                header('HTTP/1.1 301 Moved Permanently');
                                header('Location:' . W_ABSPATH . 'article/' . $idArticle);
                                exit();
                        }
                }
        }
}
catch(Exception_Multiline $exM){
  $error = NULL;
  foreach ($exM as $eM) //Проходим по всем исключениям
    $error .= $eM . '<br />';  // Выводим отдельно взятое исключение
  User_User::setUserMessage($error, -1);
}*/

	
	
	
	



?>